package com.dingreading.cloud.ssxcx.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.RelationOneToOne;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 课程点名表 实体类。
 *
 * @author EDY
 * @since 2025-08-21
 */
@Data
public class CaCallNamesDto implements Serializable {

    /**
     * 点名uid
     */
    private String uid;

    /**
     * 伙伴uid
     */
    private String agencyUid;

    /**
     * 门店uid
     */
    private String storeUid;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 课程表uid
     */
    private String scheduleUid;

    /**
     * 活动uid
     */
    private String lessonUid;

    /**
     * 活动日期
     */
    private String teachDate;

    /**
     * 周几，系统内数字
     */
    private Integer weekNum;

    /**
     * 周几，例如：周一
     */
    private String weekName;

    /**
     * 活动开始时间 HH:mm
     */
    private String beginTime;

    /**
     * 活动结束时间 HH:mm
     */
    private String endTime;

    /**
     * 关联的班级UID
     */
    private String classUid;

    /**
     * 关联的班级名称
     */
    private String className;

    /**
     * 服务uid
     */
    private String projectUid;

    /**
     * 服务项目名称
     */
    private String projectName;

    /**
     * 服务项目名称
     */
    private String productName;

    /**
     * 服务阶段uid
     */
    private String stageUid;

    /**
     * 服务阶段名称
     */
    private String stageName;

    /**
     * 关联的教室UID
     */
    private String roomUid;

    /**
     * 关联的教室名称
     */
    private String roomName;

    /**
     * 活动内容
     */
    private String content;

    /**
     * 主讲导读uid
     */
    private String teacherUid;

    /**
     * 主讲导读名
     */
    private String teacherName;

    /**
     * 活动导读username集合
     */
    private String usernames;

    /**
     * 学生uid
     */
    private String studentUid;

    /**
     * 学生名称
     */
    private String studentName;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 收费状态 1.收费 0.免费
     */
    private Integer freeStatus;

    /**
     * 参与状态 1.已到 2.迟到 3.请假 4.未到 -1.活动次数不足
     */
    private Integer callStatus;

    /**
     * 参与状态名
     */
    private String callStatusName;

    /**
     * 会员类型 1.本班级学生 2.补缺会员 3.插班会员 4.试听会员
     */
    private Integer studentType;

    /**
     * 会员类型名
     */
    private String studentTypeName;

    /**
     * 活动状态 -1.已取消 0.未活动 1.已活动 2.已完成
     */
    private Integer status;

    /**
     * 点名人uid
     */
    private String callStaffUid;

    /**
     * 点名人姓名
     */
    private String callStaffName;

    /**
     * 完成人uid
     */
    private String closeStaffUid;

    /**
     * 完成人姓名
     */
    private String closeStaffName;

    /**
     * 点名时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date callTime;

    /**
     * 完成时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date closeTime;

    @RelationOneToOne(
            selfField = "uid",
            targetTable = "ca_lesson_evaluate",
            targetField = "callNamesUid"
    )
    private CaLessonEvaluateDto lessonEvaluate;

}
